Disk arrays are used to provide storage for computer applications that need increased reliability in the face of component failures, as well as high performance for normal use. The disks in the disk arrays are often arranged as a redundant array of independent disks (RAID). The RAID arrays provide larger capacity, higher performance and, typically, higher availability for stored data than using disks individually. This is done by distributing the data across multiple disks and by including back-up information. The back-up information may be a copy of the data or enough parity information to regenerate the data if a disk or related component fails. Storing a copy of the data usually provides higher performance for read operations, as any of the available copies can be read.
One problem with the use of disks is that disks are relatively inefficient in accessing small amounts of data that are not sequentially laid out on the disk. In a typical 4 KB read, a current disk might require between 5 and 20 ms to position the disk head before beginning to transfer data, and less than 0.5 ms for transferring the data. A non-computer analogy is a repairman billing a customer 1 hour for traveling and 5 minutes for fixing an appliance. Since disk head positioning times are improving very slowly, positioning time is likely to remain an issue. When redundant copies of the data are stored in the array, small writes can be even more inefficient, because disk heads corresponding to each of the multiple copies must spend time to position themselves before writing a small amount of data.